package com.aracky.assess.model.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.aracky.common.annotation.dataconvert.dict.DataDict;
import com.aracky.common.annotation.dataconvert.user.DataUser;
import com.aracky.common.entitybase.BaseCommonVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * <p>
 * 用户绩效考核
 * </p>
 *
 * @author zzp
 * @since 2022-08-01 09:43:18
 */
@Getter
@Setter
public class HrKpiUserPerformanceHeaderVO extends BaseCommonVO {

    @ApiModelProperty("配置ID")
    private Long id;

    @ApiModelProperty("部门名称")
    private String deptName;

    @ApiModelProperty("岗位名称")
    private String postName;

    @ApiModelProperty("用户ID")
    @DataUser(userField = "userName")
    private Long userId;

    @ApiModelProperty("岗位ID")
    private Long postId;

    @ApiModelProperty("考核类型展示值")
    private String userName;

    @ApiModelProperty("考核类型，M月度考核、S季度考核、Y年度考核")
    @DataDict(dictCode = "PERFORMANCE_TYPE", dictField = "performanceTypeName")
    private String performanceType;

    @ApiModelProperty("考核类型展示值")
    private String performanceTypeName;

    @ApiModelProperty("考核周期，xxxx年xx月、xxxx年第x季度，xxxx年")
    private String performancePeriod;

    @ApiModelProperty("开始时间")
    private LocalDate startDate;

    @ApiModelProperty("结束填报时间")
    @JsonFormat(pattern = "yyyy-MM-dd ")
    private LocalDate endWriteDate;

    @ApiModelProperty("结束评分日期")
    @JsonFormat(pattern = "yyyy-MM-dd ")
    private LocalDate endAssessorDate;

    @ApiModelProperty("第一评分人ID")
    @DataUser(userField = "assessor1Name")
    private Long assessor1;

    @ApiModelProperty("第一评分人权重")
    private Integer weightPercent1;

    @ApiModelProperty("第二评分人名称")
    private String assessor1Name;

    @ApiModelProperty("第二评分人ID")
    @DataUser(userField = "assessor2Name")
    private Long assessor2;

    @ApiModelProperty("第二评分人名称")
    private String assessor2Name;

    @ApiModelProperty("第二评分人权重")
    private Integer weightPercent2;

    @ApiModelProperty("删除标志（0代表存在 2代表删除）")
    private String delFlag;

    @ApiModelProperty("处理状态（A个人填写完成情况，B考核人打分，C人力资源部确认，D完成）")
    private String status;

    @ApiModelProperty("第一评分合计")
    private BigDecimal assessor1Total;

    @ApiModelProperty("第二评分合计")
    private BigDecimal assessor2Total;

    @ApiModelProperty("第一评分人状态")
    private Boolean assessor1Status;

    @ApiModelProperty("第一评分人状态")
    private Boolean assessor2Status;

    @ExcelProperty(value = "总评分")
    private BigDecimal total;

    @ApiModelProperty("返回HrKpiUserPerformanceDetailVOList对象")
    private List<HrKpiUserPerformanceDetailVO> hrKpiUserPerformanceDetailVOList;
}
